Computer systems running complex interrelated software modules require testing as new revisions of the software modules are introduced and as problems "bugs" are discovered in existing software modules. An example of such a computer system is shown in FIG. 1. This example shows small part of a telephone network 20. In this figure, a public telephone 22 is connected to a central office--service switching point (CO/SSP) 24. The CO/SSP 24 as part of its call processing sends a call record over a signaling network 26 to a service control point (SCP) 28. The SCP 28 passes the call records on to a fraud detection system 30. When a new version of the fraud detection system 30 has been developed, it is necessary to test the new version of the fraud detection system 30 before adding it to the telephone network. This requires simulating the flow of call records that the new version of the fraud detection system has been designed to analyze. Ideally, this simulation data would be generated by the actual network elements in a laboratory setting. Often, this is not practical due to a number of reasons, including, limited funds, limited laboratory resources, staggered development cycles of dependent network elements, etc.
Test tools are often used to generate test data when the actual network elements are not available. Test tools that generate data typically are built to generate one highly specialized type of data. A typical test data generation tool is built in such a way that it contains a fixed number of test data record structures internally. These types of test tools are highly useful, but these tools can only generate a fixed set of data records that correspond to the data structures it contains. As networks evolve, data records change and new data records are added. When this happens, conventional test data generation tools need to be rewritten to contain the new data record structures. In the fast evolving world of computer networks, data requirements change often and test data generation test tools are constantly being rewritten. Constant rewrites are time consuming and expensive.
Thus there exists a need for a system of generating test data that is not tied to a fixed set of data records, is inexpensive and can efficiently generate the required test data.